﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Platform.Storage.Redis
{
	public enum RedisReplyStatus
	{
		None = '\0',

		Success = '+',
		Error = '-',
		Number = ':',
		Collection = '*',
		CollectionItem = '$'
	}


	/// <summary>
	/// Define como serão enviadas as alterações para o REDIS
	/// </summary>
	public enum SendCommandBehavior
	{
		/// <summary>
		/// A cada alteração de uma propriedade é enviada para o REDIS
		/// </summary>
		SendEach = 0,

		/// <summary>
		/// As alterações são enviadas quando o método Commit é chamado explicitamente
		/// </summary>
		Batch = 1
	}

	/// <summary>
	/// Define o deve acontecer com a conxão quando o objeto <see cref="Messaging"/> for coletado pelo 
	/// GC ou se for das um Dispose
	/// </summary>
	public enum MessagingConnection
	{
		/// <summary>
		/// Não altera o estado da conexão
		/// </summary>
		None =0,

		/// <summary>
		/// O objeto <see cref="Messaging"/> pode alterar o estado da conexão
		/// </summary>
		OwnsConnection = 1
	}

	/// <summary>
	/// Define a forma que sera utilizada para se inscrever em um canal
	/// </summary>
	public enum SubscriptionMatch
	{
		/// <summary>
		/// O nome completo sera utilizado
		/// </summary>
		Exact = 0,

		/// <summary>
		/// Um padrao de pesquisa sera utilizado
		/// </summary>
		ByPattern = 1
	}
}
